package leetcode;

import com.sun.deploy.util.StringUtils;

import java.util.HashMap;

/**
 * 5.	给定String,求此字符串的单词数量，以及每个单词出现的次数，字符串不包括标点，但是会包含大小写字母，
 * 单词不区分大小写。请编程实现，输入为一个字符串，输出为打印单词数量，同时打印每个单词及次数。（12分）
 * 例如 String str="hello world Hello hi"，其中hello和Hello为同一个单词，输出打印分别是：
 * 单词数量为: 3
 * hello 2
 * world 1
 * hi 1
 */
public class PrintWords {
    public static void main(String[] args) {
        String str="hello world Hello hi";
        String[] strs = str.split(" ");
        HashMap<String, Integer> map = new HashMap<>();
        int count = 0;
        for (String s : strs) {
            if (s != " ") {
                if (!map.containsKey(s.toLowerCase())) {
                    count++;
                    map.put(s.toLowerCase(),1);
                }else {
                    map.put(s.toLowerCase(),map.get(s.toLowerCase()) + 1);
                }
            }
        }
        System.out.println("单词的数量为：" + count);
        map.forEach((k,v) -> {
            System.out.println(k + " " + v);
        });

    }
}
